Anti-lock braking systems are common in automobiles and other vehicles. Typically, such systems attempt to improve control during braking by controlling the amount of slip of each wheel with respect to the road (or other surface on which the wheel is moving). In particular, anti-lock braking systems attempt to prevent the wheels from locking during braking because as is well known, sliding friction is significantly less than frictional forces between a rolling wheel and the road and it is the force between the road and the wheels that stops the automobile.
FIG. 1A represents a vehicle 101 moving with a translational velocity V.sub.T relative to a surface 103. To determine if a wheel 102 is locked, an anti-lock braking system determines a rotational velocity V.sub.R for the wheel 102 and compares the rotational velocity V.sub.R to the translational velocity V.sub.T. Rotational velocities of the other wheels of vehicle 101 are similarly determined and compared to the translational velocity V.sub.T. A typical anti-lock braking system includes four wheel sensors (one for each wheel), a microcontroller, and a mechanical system for controlling braking pressure on each wheel.
FIG. 1B shows one example of a wheel speed sensor 110 which can be connected to wheel 102. Wheel speed sensor 110 includes an iron gear 114 which rotates at a velocity proportional to the rotational velocity V.sub.R of wheel 102. Teeth 116 of gear 114 rotate relative to a magnet (not shown) and a wire coil 112 so that teeth 116 change a magnetic field through coil 112 and thereby generate an AC voltage in coil 112. The time between peaks in the AC voltage equals the time required for gear 114 to rotate from one tooth 166 to the next.
A microcontroller 120 is coupled to wheel speed sensor 110 and calculates the rotational velocity V.sub.R from 1) the time between peaks in the AC voltage, 2) an angular separation between the teeth 116, and 3) a constant of proportionality between the rotational velocities of gear 114 and wheel 102. Typically, microcontroller 120 receives similar signals from other wheel speed sensors (not shown) and calculates rotational velocities for each of the wheels. Depending on the anti-lock braking system program being executed, microcontroller 120 then compares the rotational velocities V.sub.R to the vehicle translational velocity V.sub.T or calculates the deceleration of each wheel and compares the deceleration of each wheel to the deceleration of the other wheels and to a maximum deceleration characteristic of the vehicle. If a wheel's rotational velocity or deceleration indicates that the wheel is slipping more than is desired, the anti-lock braking system reduces braking pressure for that wheel to reduce sliding and increase the frictional braking force. A typical anti-lock braking system may attempt to maintain a 20% slip between the wheels and the road during braking.
Reducing braking pressure may be accomplished using many different mechanical devices including solenoid valves and pumps. Typically, braking systems use hydraulic pressure on a piston in a cylinder to press a brake shoe against a brake drum or to press a brake pad against a brake rotor and slow rotation of the wheel. Reducing braking pressure can be accomplished with a solenoid 150 that opens a valve and reduces hydraulic pressure in the cylinder.
If a malfunction in the anti-lock braking system causes valves which relieve hydraulic pressure to remain closed, the anti-lock braking system behaves like conventional brakes. The brakes still operate to stop the vehicle, but the brakes can lock. If a malfunction causes valves to remain open, the brakes may not work at all. Accordingly, for safety reasons, anti-lock braking system systems are typically designed so malfunctions disable the anti-lock braking system and leave conventional braking functional.
One method for sensing malfunctions in an anti-lock braking system is to provide a redundant microcontroller 130. The redundant microcontroller 130 receives the same input signals and executes the same software and therefore should generate the same output signals as microcontroller 120. Circuit 140 therefore compares the output signals from microcontroller 120 with the output signals from microcontroller 130. If output signals from microcontrollers 120 and 130 are not the same, there is a malfunction and circuit 140 disables the anti-lock braking system, leaving conventional brakes.
Systems with redundant controllers have several problems. One problem is that typically both microcontrollers execute the same software, so that software errors and events not anticipated by software may not be identified or handled properly. Even when the two controllers execute different software, the identical function of microcontrollers and similarities in programming techniques tend to cause similar software errors. Also, the chance of simultaneous hardware malfunctions is increased because the redundant microcontrollers are identical circuits, formed using same fabrication techniques, and operate in the same environment.
Another disadvantage of two controllers is cost. Two microcontrollers, each of which is adequately powerful to perform all the anti-lock braking system functions by itself, essentially doubles the cost of the electronics. Accordingly, anti-lock braking systems are often only provided as an option in less expensive cars. A low cost anti-lock braking system is needed which provides high reliability even during unanticipated events.